//
//  udpSocket.h
//  FFmpeg_X264_Codec
//
//  Created by luwinglee on 16/1/8.
//  Copyright © 2016年 suntongmian@163.com. All rights reserved.
//

#import <Foundation/Foundation.h>

#define MAX_RECV_BUF_SIZE 2048

/**
 接受数据回调
 */
typedef int (*recvDataCallBack)(char *dataBuf, int dataSize);

@interface udpSocket : NSObject
{
    recvDataCallBack m_recv_data_cb;
}

/**
>> 初始化对象
 */
-(id)init;

/**
 >> 创建udp socket
 @ipAddr: 目标ip地址
 @ipPort: 目标ip端口
 @return: 成功返回0，错误返回－1;
 */
-(int) createUdpByIpAddr:(char *)ipAddr andPort:(int) ipPort;
/**
 >> 释放资源
 */
-(void) releaseUdp;

/**
 >> 发送数据
 @dataBuf:  需要发送的数据缓冲
 @dataSize: 需要发送的数据长度
 @return:   返回实际发送的长度;
 */
-(int) sendData:(char *) dataBuf andSize:(int) dataSize;

/**
 >> 接受数据，结合接受回调使用
 @maxRecvSize: 最大接受数据长度，大于MAX_RECV_BUF_SIZE时，则按MAX_RECV_BUF_SIZE为最大长度来读取;
 @return:      返回实际接收的长度;
 */
-(int) recvData:(int)maxRecvSize;

@end
